package com.stefanini.pe.bbva.bp.in.dao.impl;

import java.util.HashMap;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.ibatis.support.SqlMapClientDaoSupport;
import org.springframework.stereotype.Repository;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.stefanini.pe.bbva.bp.in.dao.iface.VencimientoDAOIface;
import com.stefanini.pe.bbva.bp.in.to.ClienteDesbalanceado;
import com.stefanini.pe.bbva.bp.in.to.VencimientoBono;
import com.stefanini.pe.bbva.bp.in.to.CumpleCliente;
import com.stefanini.pe.bbva.bp.in.to.VencimientoDPZ;
import com.stefanini.pe.bbva.bp.in.to.VencimientoORep;


@Repository
public class VencimientoDAOImpl extends SqlMapClientDaoSupport implements VencimientoDAOIface {
	
		
	@Autowired
	public VencimientoDAOImpl(SqlMapClient sqlMapClient) {
		super();
		super.setSqlMapClient(sqlMapClient);
	}
	
	@SuppressWarnings("unchecked")
	public List<VencimientoDPZ> consultaVencimientoDPZ(String idusuarioasesor,int diasvencimieto) {		
		HashMap map = new HashMap();
		map.put("in_idusuarioasesor", idusuarioasesor);
		map.put("in_diasvencimiento", diasvencimieto);
		
		System.out.println("sp: IIAF.piiaf_gestion.sp_cons_gt_vencdpz, params: "+map);
		getSqlMapClientTemplate().queryForList("BP_VENCIMIENTOS_SqlMap.sp_vencimientoDPZ",map);
		return (List<VencimientoDPZ>)map.get("out_result_set");		
	}
	
	@SuppressWarnings("unchecked")
	public List<CumpleCliente> consultaCumpleCliente(String idusuarioasesor,int diasvencimieto) {		
		HashMap map = new HashMap();
		map.put("in_idusuarioasesor", idusuarioasesor);
		map.put("in_diasvencimiento", diasvencimieto);
		
		System.out.println("sp: IIAF.PIIAF_GESTION.SP_CONS_GT_CUMPLEANIOS, params: "+map);
		getSqlMapClientTemplate().queryForList("BP_VENCIMIENTOS_SqlMap.sp_cumpleCliente",map);
		return (List<CumpleCliente>)map.get("OUT_CURSOR");		
	}
	
	@SuppressWarnings("unchecked")
	public List<ClienteDesbalanceado> consultaClienteDesbalanceado(String idusuarioasesor) {		
		HashMap map = new HashMap();
		map.put("in_idusuarioasesor", idusuarioasesor);
		getSqlMapClientTemplate().queryForList("BP_VENCIMIENTOS_SqlMap.sp_clienteDesbalanceado",map);
		return (List<ClienteDesbalanceado>)map.get("OUT_CURSOR");		
	}
	
	@SuppressWarnings("unchecked")
	public List<ClienteDesbalanceado> consultaClienteDesbalanceadoModal(String idcliente) {		
		HashMap map = new HashMap();
		map.put("in_idcliente", idcliente);
		getSqlMapClientTemplate().queryForList("BP_VENCIMIENTOS_SqlMap.sp_clienteDesbalanceadoModal",map);
		return (List<ClienteDesbalanceado>)map.get("OUT_CURSOR");		
	}
	
	@SuppressWarnings("unchecked")
	public List<ClienteDesbalanceado> consultaClienteDesbalanceadoReporte(String idusuarioasesor) {		
		HashMap map = new HashMap();
		map.put("in_idusuarioasesor", idusuarioasesor);
		getSqlMapClientTemplate().queryForList("BP_VENCIMIENTOS_SqlMap.sp_clienteDesbalanceadoReporte",map);
		return (List<ClienteDesbalanceado>)map.get("OUT_CURSOR");		
	}
	
	@SuppressWarnings("unchecked")
	public List<VencimientoBono> consultaVencimientoBono(String idusuarioasesor,int diasvencimieto) {		
		HashMap map = new HashMap();
		map.put("in_idusuarioasesor", idusuarioasesor);
		map.put("in_diasvencimiento", diasvencimieto);
		
		System.out.println("sp: IIAF.PIIAF_GESTION.SP_CONS_GT_VENCBONOS, params: "+map);
		getSqlMapClientTemplate().queryForList("BP_VENCIMIENTOS_SqlMap.sp_vencimientoBono",map);
		return (List<VencimientoBono>)map.get("out_result_set");
	}	
	
	@SuppressWarnings("unchecked")
	public List<VencimientoORep> consultaVencimientoOPR(String idusuarioasesor,int diasvencimieto) {		
		HashMap map = new HashMap();
		map.put("in_idusuarioasesor", idusuarioasesor);
		map.put("in_diasvencimiento", diasvencimieto);
		
		System.out.println("sp: IIAF.PIIAF_GESTION.SP_CONS_GT_VENCOPREPORTE, params: "+map);
		getSqlMapClientTemplate().queryForList("BP_VENCIMIENTOS_SqlMap.sp_vencimientoORep",map);
		return (List<VencimientoORep>)map.get("out_result_set");
	}
	
}
